home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JTable$AccessibleJTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  8.9 KB  |  366 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Point;
  4. import java.beans.PropertyChangeEvent;
  5. import java.beans.PropertyChangeListener;
  6. import java.util.EventObject;
  7. import javax.accessibility.Accessible;
  8. import javax.accessibility.AccessibleContext;
  9. import javax.accessibility.AccessibleRole;
  10. import javax.accessibility.AccessibleSelection;
  11. import javax.swing.event.CellEditorListener;
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.event.ListSelectionEvent;
  14. import javax.swing.event.ListSelectionListener;
  15. import javax.swing.event.TableColumnModelEvent;
  16. import javax.swing.event.TableColumnModelListener;
  17. import javax.swing.event.TableModelEvent;
  18. import javax.swing.event.TableModelListener;
  19. import javax.swing.table.JTableHeader;
  20. import javax.swing.table.TableCellEditor;
  21. import javax.swing.table.TableCellRenderer;
  22. import javax.swing.table.TableColumn;
  23. import javax.swing.table.TableColumnModel;
  24. import javax.swing.table.TableModel;
  25.  
  26. public class JTable$AccessibleJTable extends JComponent.AccessibleJComponent implements AccessibleSelection, ListSelectionListener, TableModelListener, TableColumnModelListener, CellEditorListener, PropertyChangeListener {
  27.    // $FF: synthetic field
  28.    private final JTable this$0;
  29.    int lastSelectedRow;
  30.    int lastSelectedCol;
  31.  
  32.    JTable$AccessibleJTable(JTable var1) {
  33.       super(var1);
  34.       this.this$0 = var1;
  35.       ((JComponent)var1).addPropertyChangeListener(this);
  36.       var1.getSelectionModel().addListSelectionListener(this);
  37.       TableColumnModel var2 = var1.getColumnModel();
  38.       var2.addColumnModelListener(this);
  39.       var2.getSelectionModel().addListSelectionListener(this);
  40.       var1.getModel().addTableModelListener(this);
  41.       this.lastSelectedRow = var1.getSelectedRow();
  42.       this.lastSelectedCol = var1.getSelectedColumn();
  43.    }
  44.  
  45.    // $FF: synthetic method
  46.    static JTable access$0(JTable$AccessibleJTable var0) {
  47.       return var0.this$0;
  48.    }
  49.  
  50.    public void addAccessibleSelection(int var1) {
  51.       if (this.this$0.cellSelectionEnabled) {
  52.          int var2 = this.getAccessibleColumnAtIndex(var1);
  53.          int var3 = this.getAccessibleRowAtIndex(var1);
  54.          this.this$0.addRowSelectionInterval(var3, var3);
  55.          this.this$0.addColumnSelectionInterval(var2, var2);
  56.       }
  57.  
  58.    }
  59.  
  60.    public void clearAccessibleSelection() {
  61.       this.this$0.clearSelection();
  62.    }
  63.  
  64.    public void columnAdded(TableColumnModelEvent var1) {
  65.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  66.    }
  67.  
  68.    public void columnMarginChanged(ChangeEvent var1) {
  69.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  70.    }
  71.  
  72.    public void columnMoved(TableColumnModelEvent var1) {
  73.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  74.    }
  75.  
  76.    public void columnRemoved(TableColumnModelEvent var1) {
  77.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  78.    }
  79.  
  80.    public void columnSelectionChanged(ListSelectionEvent var1) {
  81.    }
  82.  
  83.    public void editingCanceled(ChangeEvent var1) {
  84.    }
  85.  
  86.    public void editingStopped(ChangeEvent var1) {
  87.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  88.    }
  89.  
  90.    private Accessible getAccessibleAt(int var1, int var2) {
  91.       return this.getAccessibleChild(var1 * this.getAccessibleColumnCount() + var2);
  92.    }
  93.  
  94.    public Accessible getAccessibleAt(Point var1) {
  95.       int var2 = this.this$0.columnAtPoint(var1);
  96.       int var3 = this.this$0.rowAtPoint(var1);
  97.       if (var2 != -1 && var3 != -1) {
  98.          TableColumn var4 = this.this$0.getColumnModel().getColumn(var2);
  99.          TableCellRenderer var5 = var4.getCellRenderer();
  100.          if (var5 == null) {
  101.             Class var6 = this.this$0.getColumnClass(var2);
  102.             var5 = this.this$0.getDefaultRenderer(var6);
  103.          }
  104.  
  105.          var5.getTableCellRendererComponent(this.this$0, (Object)null, false, false, var3, var2);
  106.          return new JTable.AccessibleJTable.AccessibleJTableCell(this, this.this$0, var3, var2, this.getAccessibleIndexAt(var3, var2));
  107.       } else {
  108.          return null;
  109.       }
  110.    }
  111.  
  112.    public Accessible getAccessibleChild(int var1) {
  113.       if (var1 >= 0 && var1 < this.getAccessibleChildrenCount()) {
  114.          int var2 = this.getAccessibleColumnAtIndex(var1);
  115.          int var3 = this.getAccessibleRowAtIndex(var1);
  116.          TableColumn var4 = this.this$0.getColumnModel().getColumn(var2);
  117.          TableCellRenderer var5 = var4.getCellRenderer();
  118.          if (var5 == null) {
  119.             Class var6 = this.this$0.getColumnClass(var2);
  120.             var5 = this.this$0.getDefaultRenderer(var6);
  121.          }
  122.  
  123.          var5.getTableCellRendererComponent(this.this$0, (Object)null, false, false, var3, var2);
  124.          return new JTable.AccessibleJTable.AccessibleJTableCell(this, this.this$0, var3, var2, this.getAccessibleIndexAt(var3, var2));
  125.       } else {
  126.          return null;
  127.       }
  128.    }
  129.  
  130.    public int getAccessibleChildrenCount() {
  131.       return this.this$0.getColumnCount() * this.this$0.getRowCount();
  132.    }
  133.  
  134.    private int getAccessibleColumnAtIndex(int var1) {
  135.       return var1 % this.getAccessibleColumnCount();
  136.    }
  137.  
  138.    private int getAccessibleColumnCount() {
  139.       return this.this$0.getColumnCount();
  140.    }
  141.  
  142.    private Accessible getAccessibleColumnHeader(int var1) {
  143.       JTableHeader var2 = this.this$0.getTableHeader();
  144.       AccessibleContext var3 = var2.getAccessibleContext();
  145.       return var3 != null ? var3.getAccessibleChild(var1) : null;
  146.    }
  147.  
  148.    private int getAccessibleIndexAt(int var1, int var2) {
  149.       return var1 * this.getAccessibleColumnCount() + var2;
  150.    }
  151.  
  152.    public AccessibleRole getAccessibleRole() {
  153.       return AccessibleRole.TABLE;
  154.    }
  155.  
  156.    private int getAccessibleRowAtIndex(int var1) {
  157.       return var1 / this.getAccessibleColumnCount();
  158.    }
  159.  
  160.    private int getAccessibleRowCount() {
  161.       return this.this$0.getRowCount();
  162.    }
  163.  
  164.    private Accessible getAccessibleRowHeader(int var1) {
  165.       return null;
  166.    }
  167.  
  168.    public AccessibleSelection getAccessibleSelection() {
  169.       return this;
  170.    }
  171.  
  172.    public Accessible getAccessibleSelection(int var1) {
  173.       if (var1 >= 0 && var1 <= this.getAccessibleSelectionCount()) {
  174.          int var2 = this.this$0.getSelectedRowCount();
  175.          int var3 = this.this$0.getSelectedColumnCount();
  176.          int[] var4 = this.this$0.getSelectedRows();
  177.          int[] var5 = this.this$0.getSelectedColumns();
  178.          int var6 = this.this$0.getColumnCount();
  179.          int var7 = this.this$0.getRowCount();
  180.          if (this.this$0.cellSelectionEnabled) {
  181.             int var20 = var4[var1 / var3];
  182.             int var25 = var5[var1 % var3];
  183.             return this.getAccessibleChild(var20 * var6 + var25);
  184.          } else {
  185.             if (this.this$0.getRowSelectionAllowed() && this.this$0.getColumnSelectionAllowed()) {
  186.                int var10 = var1;
  187.                boolean var11 = false;
  188.                boolean var12 = true;
  189.                int var13 = var4[0] == 0 ? 0 : 1;
  190.                int var14 = 0;
  191.                int var15 = -1;
  192.  
  193.                while(var14 < var4.length) {
  194.                   switch (var13) {
  195.                      case 0:
  196.                         if (var10 < var6) {
  197.                            int var23 = var10 % var6;
  198.                            int var18 = var4[var14];
  199.                            return this.getAccessibleChild(var18 * var6 + var23);
  200.                         }
  201.  
  202.                         var10 -= var6;
  203.                         if (var14 + 1 == var4.length || var4[var14] != var4[var14 + 1] - 1) {
  204.                            var13 = 1;
  205.                            var15 = var4[var14];
  206.                         }
  207.  
  208.                         ++var14;
  209.                         break;
  210.                      case 1:
  211.                         if (var10 < var3 * (var4[var14] - (var15 == -1 ? 0 : var15 + 1))) {
  212.                            int var22 = var5[var10 % var3];
  213.                            int var17 = (var14 > 0 ? var4[var14 - 1] + 1 : 0) + var10 / var3;
  214.                            return this.getAccessibleChild(var17 * var6 + var22);
  215.                         }
  216.  
  217.                         var10 -= var3 * (var4[var14] - (var15 == -1 ? 0 : var15 + 1));
  218.                         var13 = 0;
  219.                   }
  220.                }
  221.  
  222.                if (var10 < var3 * (var7 - (var15 == -1 ? 0 : var15 + 1))) {
  223.                   int var24 = var5[var10 % var3];
  224.                   int var19 = var4[var14 - 1] + var10 / var3 + 1;
  225.                   return this.getAccessibleChild(var19 * var6 + var24);
  226.                }
  227.             } else {
  228.                if (this.this$0.getRowSelectionAllowed()) {
  229.                   int var21 = var1 % var6;
  230.                   int var16 = var4[var1 / var6];
  231.                   return this.getAccessibleChild(var16 * var6 + var21);
  232.                }
  233.  
  234.                if (this.this$0.getColumnSelectionAllowed()) {
  235.                   int var9 = var5[var1 % var3];
  236.                   int var8 = var1 / var3;
  237.                   return this.getAccessibleChild(var8 * var6 + var9);
  238.                }
  239.             }
  240.  
  241.             return null;
  242.          }
  243.       } else {
  244.          return null;
  245.       }
  246.    }
  247.  
  248.    public int getAccessibleSelectionCount() {
  249.       int var1 = this.this$0.getSelectedRowCount();
  250.       int var2 = this.this$0.getSelectedColumnCount();
  251.       if (this.this$0.cellSelectionEnabled) {
  252.          return var1 * var2;
  253.       } else if (this.this$0.getRowSelectionAllowed() && this.this$0.getColumnSelectionAllowed()) {
  254.          return var1 * this.this$0.getColumnCount() + var2 * this.this$0.getRowCount() - var1 * var2;
  255.       } else if (this.this$0.getRowSelectionAllowed()) {
  256.          return var1 * this.this$0.getColumnCount();
  257.       } else {
  258.          return this.this$0.getColumnSelectionAllowed() ? var2 * this.this$0.getRowCount() : 0;
  259.       }
  260.    }
  261.  
  262.    public boolean isAccessibleChildSelected(int var1) {
  263.       int var2 = this.getAccessibleColumnAtIndex(var1);
  264.       int var3 = this.getAccessibleRowAtIndex(var1);
  265.       return this.this$0.isCellSelected(var3, var2);
  266.    }
  267.  
  268.    public void propertyChange(PropertyChangeEvent var1) {
  269.       String var2 = var1.getPropertyName();
  270.       Object var3 = var1.getOldValue();
  271.       Object var4 = var1.getNewValue();
  272.       if (var2.compareTo("model") == 0) {
  273.          if (var3 != null && var3 instanceof TableModel) {
  274.             ((TableModel)var3).removeTableModelListener(this);
  275.          }
  276.  
  277.          if (var4 != null && var4 instanceof TableModel) {
  278.             ((TableModel)var4).addTableModelListener(this);
  279.          }
  280.       } else if (var2.compareTo("selectionModel") == 0) {
  281.          Object var5 = ((EventObject)var1).getSource();
  282.          if (var5 == this.this$0) {
  283.             if (var3 != null && var3 instanceof ListSelectionModel) {
  284.                ((ListSelectionModel)var3).removeListSelectionListener(this);
  285.             }
  286.  
  287.             if (var4 != null && var4 instanceof ListSelectionModel) {
  288.                ((ListSelectionModel)var4).addListSelectionListener(this);
  289.             }
  290.          } else if (var5 == this.this$0.getColumnModel()) {
  291.             if (var3 != null && var3 instanceof ListSelectionModel) {
  292.                ((ListSelectionModel)var3).removeListSelectionListener(this);
  293.             }
  294.  
  295.             if (var4 != null && var4 instanceof ListSelectionModel) {
  296.                ((ListSelectionModel)var4).addListSelectionListener(this);
  297.             }
  298.          }
  299.       } else if (var2.compareTo("columnModel") == 0) {
  300.          if (var3 != null && var3 instanceof TableColumnModel) {
  301.             TableColumnModel var6 = (TableColumnModel)var3;
  302.             var6.removeColumnModelListener(this);
  303.             var6.getSelectionModel().removeListSelectionListener(this);
  304.          }
  305.  
  306.          if (var4 != null && var4 instanceof TableColumnModel) {
  307.             TableColumnModel var7 = (TableColumnModel)var3;
  308.             var7.addColumnModelListener(this);
  309.             var7.getSelectionModel().addListSelectionListener(this);
  310.          }
  311.       } else if (var2.compareTo("tableCellEditor") == 0) {
  312.          if (var3 != null && var3 instanceof TableCellEditor) {
  313.             ((TableCellEditor)var3).removeCellEditorListener(this);
  314.          }
  315.  
  316.          if (var4 != null && var4 instanceof TableCellEditor) {
  317.             ((TableCellEditor)var4).addCellEditorListener(this);
  318.          }
  319.       }
  320.  
  321.    }
  322.  
  323.    public void removeAccessibleSelection(int var1) {
  324.       if (this.this$0.cellSelectionEnabled) {
  325.          int var2 = this.getAccessibleColumnAtIndex(var1);
  326.          int var3 = this.getAccessibleRowAtIndex(var1);
  327.          this.this$0.removeRowSelectionInterval(var3, var3);
  328.          this.this$0.removeColumnSelectionInterval(var2, var2);
  329.       }
  330.  
  331.    }
  332.  
  333.    public void selectAllAccessibleSelection() {
  334.       if (this.this$0.cellSelectionEnabled) {
  335.          this.this$0.selectAll();
  336.       }
  337.  
  338.    }
  339.  
  340.    public void tableChanged(TableModelEvent var1) {
  341.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  342.    }
  343.  
  344.    public void tableRowsDeleted(TableModelEvent var1) {
  345.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  346.    }
  347.  
  348.    public void tableRowsInserted(TableModelEvent var1) {
  349.       ((AccessibleContext)this).firePropertyChange("AccessibleVisibleData", (Object)null, (Object)null);
  350.    }
  351.  
  352.    public void valueChanged(ListSelectionEvent var1) {
  353.       ((AccessibleContext)this).firePropertyChange("AccessibleSelection", new Boolean(false), new Boolean(true));
  354.       int var2 = this.this$0.getSelectedRow();
  355.       int var3 = this.this$0.getSelectedColumn();
  356.       if (var2 != this.lastSelectedRow || var3 != this.lastSelectedCol) {
  357.          Accessible var4 = this.getAccessibleAt(this.lastSelectedRow, this.lastSelectedCol);
  358.          Accessible var5 = this.getAccessibleAt(var2, var3);
  359.          ((AccessibleContext)this).firePropertyChange("AccessibleActiveDescendant", var4, var5);
  360.          this.lastSelectedRow = var2;
  361.          this.lastSelectedCol = var3;
  362.       }
  363.  
  364.    }
  365. }
  366.